package com.baidu.bridge.service.impl;


import com.baidu.bridge.api.AbApiService;
import com.baidu.bridge.dto.ab.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import okhttp3.ResponseBody;

import org.springframework.stereotype.Service;
import retrofit2.Call;
import retrofit2.Response;
import java.io.IOException;

@Service
@Slf4j
@RequiredArgsConstructor
public class AbUserService  extends  BaseService{

    private final AbApiService apiService;



    /**
     * 添加用户
     * @param request 添加用户请求参数
     * @return 添加成功消息（如 "添加成功"）
     * @throws RuntimeException 接口调用失败或业务错误时抛出
     */
    public String addUser(AddUserRequest request) {
        Call<CommonResponse<String>> call = apiService.addUser(request);
        return executeCall(call, "添加用户");
    }

    /**
     * 删除用户
     * @param request 删除用户请求参数（包含用户ID列表）
     * @return 删除成功消息（如 "删除成功"）
     * @throws RuntimeException 接口调用失败或业务错误时抛出
     */
    public String deleteUser(DeleteUserRequest request) {
        Call<CommonResponse<String>> call = apiService.deleteUser(request);
        return executeCall(call, "删除用户");
    }

    /**
     * 修改用户信息
     * @param request 修改用户请求参数（包含用户ID和修改字段）
     * @return 编辑成功消息（如 "编辑成功"）
     * @throws RuntimeException 接口调用失败或业务错误时抛出
     */
    public String updateUser(UpdateUserRequest request) {
        Call<CommonResponse<String>> call = apiService.updateUser(request);
        return executeCall(call, "修改用户");
    }

    /**
     * 查询用户列表（分页）
     * @param request 查询用户请求参数（包含部门ID、分页信息等）
     * @return 用户分页结果对象（包含用户列表和分页信息）
     * @throws RuntimeException 接口调用失败或业务错误时抛出
     */
    public UserPageResult queryUserList(QueryUserRequest request) {
        Call<CommonResponse<UserPageResult>> call = apiService.queryUserList(request);
        return executeCall(call, "查询用户列表");
    }

}
